A database schema describes the organization and structure of data in a database. Typically the schema of a database is modified incrementally with each new software release. FIG. 1 is a diagram illustrating five versions of a database, v1 to v5. For example, a first version (v1) of a customer database may include first name, last name, and SSN fields. In the next version (v2), a date of birth field may be added. As more versions are released, a customer site may end up with multiple databases each having different versions of software. Maintaining the logic to migrate the various existing versions to newer versions becomes increasingly difficult. For example, in FIG. 1, specific logic must be maintained to translate from v1 to v2, v1 to v3, v1 to v4, v1 to v5, v3 to v5, v2 to v3, v2 to v4, v4 to v5, and v2 to v5. In addition, it is difficult to express translations that span more than one version, such as a translation from v1 to v3. It would be desirable to have a simpler method for translating databases.